脆弱性診断ツールZAPのWebSwing版を使ってみた

脆弱性診断ツールZAPのWebSwing版を使ってみた

Web脆弱性診断ツールZAPのWebSwing版はブラウザ経由でデスクトップアプリのように使用可能です。CI/CDプロセスに載せる前の動作確認や日々の脆弱性診断に役立つので使ってみてください。
Clock Icon2024.12.09

はじめに

データ事業本部の藤川です。皆さん、セキュリティーしてますか?
脆弱性診断はソフトウェア開発を行う上で必須の作業です。CI/CDプロセスに組み込み、デプロイ前に脆弱性を検出しているプロジェクトも多いでしょう。Web脆弱性診断ツールにはBurp Suiteなど非常に優れたUIを持つものも増えています。
ただし、Webアプリケーションにログインできるようにしたり、細かいコンフィグレーションが必要なため、開発フローに乗せる前に、手軽に試せる環境が欲しいものです。
こちらの記事でDocker版ZAPの使い方が紹介されています。今回は、Docker版ZAPをブラウザから操作するやり方をご紹介したいと思います。

ZAPについて

以前は、OWASP ZAPと呼んでいましたが、今は、単にZAPもしくはZAP by Checkmarxと呼ばれています。(ZAP自体がZed Attack Proxyの略語なので、Open Worldwide Application Security Project Zed Attack Proxyだった!?)
※参考:ZAP (software) - Wikipedia

ZAPのソースコードは https://github.com/zaproxy/zaproxy で提供されています。Docker版はこちらにある通り、Stableリリース以外にWeelkyリリースなどがあります。

The plan is to generate and upload the releases every Monday morning.
計画では、毎週月曜日の朝にリリースを生成してアップロードする予定です。

※引用:ZAP – ZAP Weekly Releases

Weeklyリリースは、毎週月曜日の朝に更新されます。時差やスケジュールの遅れを見込んで、火曜日の早朝からスキャンするのが良いかもしれません。

準備

やられサイトとして、OWASP Juice Shopを起動しておきます。

  1. OWASP Juice Shopを起動します。
    docker pull bkimminich/juice-shop
    docker run --rm -p 3000:3000 bkimminich/juice-shop
    
  2. OWASP Juice Shopにアクセスできることを確認します。

ZAPの起動方法

  1. ZAP(Weekly)の最新版を取得します。
    docker pull ghcr.io/zaproxy/zaproxy:weekly
    
  2. ZAPを起動します。
    docker run -v $(pwd):/zap/wrk/:rw -u zap -p 8080:8080 -p 8090:8090 -i ghcr.io/zaproxy/zaproxy:weekly zap-webswing.sh
    
  3. 次のURLにアクセスします。
  4. Do you want to persist the ZAP Session?と聞かれるので、適当な項目を選択し、Startボタンをクリックします。(コンテナ内に残したスキャン結果を次のセッション時に使うかどうかの話しなので、コンテナ内に残さないのが良いのではないでしょうか)
    session
  5. WebSwing版ZAPのページが開きます。WebSwingを使っているので、ブラウザ内にデスクトップアプリのような画面が開きます。[ファイル]メニューを使って、ファイルを読み込み、書き込みしようとすると、ブラウザ経由でローカルPCのファイルをZAPにアップロード、ダウンロードできます。

ZAPの使い方

  1. Automated Scanボタンをクリックします。
    zap
  2. URL to attackにテスト対象のURLを入力します。
  3. Attackボタンをクリックします。スキャンが開始します。
    Automated Scan
  4. 次のメッセージが表示されましたが、OKボタンをクリックして進みます。
    ※参考:ZAP – How can I fix 'browser was not found'?
    no-browser
  5. 様々な脆弱性が見つかりました。
    ZAP Scanned

さいごに

今回は、Docker版ZAPでWebSwingの画面を開いてみました。テスト対象のWebアプリを開いて、スキャンするための設定を行い、コンテキストファイルをダウンロードしておくことで、CI/CDプロセスに取り込み、スムーズに脆弱性診断をソフトウェア開発フローに載せられるようになります。

あわせて読みたい

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.